/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package databeans;

import beans.*;
import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import java.util.ArrayList;
import com.sun.rowset.CachedRowSetImpl;
import java.util.Iterator;
import utils.CargarConfiguraciones;

/**
 *
 * @author Carlos
 */
public class OpcionesEncuestaDataBean {

    private CachedRowSet rowSet;
    private CargarConfiguraciones cc;

    public OpcionesEncuestaDataBean() throws Exception
    {
        cc = new CargarConfiguraciones();
        Class.forName(cc.getValor("driver"));
        rowSet = new CachedRowSetImpl();
        rowSet.setUrl(cc.getValor("urlbase"));
        rowSet.setUsername(cc.getValor("usuario"));
        rowSet.setPassword(cc.getValor("clave"));
    }

    public void cargarDetallesEncuesta(String idEncuesta)
    {
    //Obtener lista de titulos
       try{
        rowSet.setCommand(
                "select idencuesta, correlativo, descripcionopcion from opcionesencuesta where idencuesta='"+idEncuesta+"'");
        rowSet.execute();
       }catch(SQLException e){
            e.printStackTrace();
       }
    }

    public ArrayList <ResumenVotosBean> getVotosEncuesta(String idEncuesta)
    {
         ArrayList <ResumenVotosBean> listaopc = new ArrayList<ResumenVotosBean>();

         try {
            String sql = "select oe.descripcionopcion as opcion ,"+
                            "(select count(*) from detalleencuesta "+
                                "where idencuesta=" + idEncuesta +
                                " and respuesta = oe.correlativo) as votos," +
                                " oe.correlativo correlativo "+
                                "from opcionesencuesta oe where idencuesta =" + idEncuesta;
            rowSet.setCommand(sql);
            rowSet.execute();
            rowSet.beforeFirst();
           
            while (rowSet.next())
            {
                ResumenVotosBean votos = new ResumenVotosBean();
                votos.setOpcion(rowSet.getString(1));
                votos.setVotos(rowSet.getInt(2));
                votos.setCorrelativo(rowSet.getInt(3));
                listaopc.add(votos);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    return listaopc;
    }

    //Devolver una lista de encuestaBeans
    public ArrayList< OpcionesEncuestaBean > getListaOpciones() throws SQLException
    {
        ArrayList< OpcionesEncuestaBean > listaOpciones = new ArrayList< OpcionesEncuestaBean >();
        rowSet.beforeFirst();

        //Obtener los datos
        while(rowSet.next())
        {
            OpcionesEncuestaBean opciones = new OpcionesEncuestaBean();
            opciones.setIdEncuesta(rowSet.getString(1));
            opciones.setCorrelativo(rowSet.getString(2));
            opciones.setDescripcionOpcion(rowSet.getString(3));

            listaOpciones.add(opciones);
        }

        return listaOpciones;
    }

    public void setOpcionesEncuesta(ArrayList <OpcionesEncuestaBean> lista) throws SQLException
    {

        Iterator it= lista.iterator();
        while (it.hasNext()){
        OpcionesEncuestaBean oeb= new OpcionesEncuestaBean();
        oeb =(OpcionesEncuestaBean) it.next();

        String sql="INSERT INTO opcionesencuesta " +
                            "(idencuesta, " +
                            "correlativo, " +
                            "descripcionopcion)"+
                    "VALUES (" +
                            "'"+ oeb.getIdEncuesta() +"'," +
                            "'"+ oeb.getCorrelativo() +"'," +
                            "'"+ oeb.getDescripcionOpcion() +"')";
        rowSet.setCommand(sql);
        rowSet.execute();
        }

    }

}
